#include <iostream>
#include <string>
#include <memory>
#include <jsoncpp/json/json.h>

int main()
{
    //反序列化：json格式字符串->数据对象
    std::string str = R"({"姓名":"小黑","年龄":19,"成绩":[58.5,56,59]})";//R"()"表示括号里面都是原始字符串--C++11
    //1.定义Json::Value对象
    Json::Value root;

    Json::CharReaderBuilder crb;//这个对象主要是为了new出CharReader对象
    std::unique_ptr<Json::CharReader> cr(crb.newCharReader());
    std::string err;
    bool ret =  cr->parse(str.c_str(),str.c_str()+str.size(),&root,&err);//将反序列化后的数据存储到Json::Value对象中
    if(ret == false)
    {
        std::cout<<"parse error:"<<err<<std::endl;
        return -1;
    }
    std::cout<<root["姓名"].asString()<<std::endl;
    std::cout<<root["年龄"].asInt()<<std::endl;
    int sz = root["成绩"].size();
    for(int i=0;i<sz;i++)
    {
        std::cout<<root["成绩"][i]<<std::endl;
    }
    return 0;
}
